//
//
//
//class Solution {
//    public int maxProduct(int[] nums) {
//        int[] dpMax = new int[nums.length];
//        int[] dpMin = new int[nums.length];
//        int[] dp = new int[nums.length];
//        dpMax[0] = nums[0];
//        dpMin[0] = nums[0];
//        dp[0] = nums[0];
//        int max = dp[0];
//        for (int i = 1; i < dp.length; i++) {
//
//            dpMax[i] = Math.max(nums[i], Math.max(dpMax[i - 1] * nums[i], dpMin[i - 1] * nums[i]));
//            dpMin[i] = Math.min(nums[i], Math.min(dpMax[i - 1] * nums[i], dpMin[i - 1] * nums[i]));
//            dp[i] = Math.max(dpMax[i], dpMin[i]);
//            max = Math.max(max, dp[i]);
//        }
//        return max;
//
//    }
//}